package com.docker.drug.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.docker.common.annotation.Excel;
import com.docker.common.core.domain.BaseEntity;

/**
 * 药品信息对象 docker_drug
 * 
 * @author lin
 * @date 2025-04-09
 */
public class DockerDrug extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    @Excel(name = "序号")
    private Long id;

    /** 药品信息分类(1 西药 、2中药) */
    @Excel(name = "药品信息分类(1 西药 、2中药)")
    private Long drugInformationId;

    /** 药品编码 */
    @Excel(name = "药品编码")
    private String drugCode;

    /** 药品条形码 */
    private String drugBarcode;

    /** 药品通用名 */
    @Excel(name = "药品通用名")
    private String drugGenericName;

    /** 拼音码 */
    private String pinyinCode;

    /** 药品分类（字典） */
    private String drugCategory;

    /** 药品规格 */
    @Excel(name = "药品规格")
    private String drugSpecification;

    /** 药品剂型（字典） */
    private String drugForm;

    /** OTC药品 */
    private String otcFlag;

    /** 发票项目（字典) */
    private String invoiceItem;

    /** 批准文号 */
    private String approvalNumber;

    /** 生产厂家（字典） */
    @Excel(name = "生产厂家", readConverterExp = "字=典")
    private String drugManufacturer;

    /** 药品状态 */
    @Excel(name = "药品状态")
    private String drugStatus;

    /** 包装单位（字典) */
    private String packagingUnit;

    /** 基本系数 */
    private String basicCoefficient;

    /** 基本单位 （字典） */
    private String basicUnit;

    /** 剂量系数 */
    private String doseCoefficient;

    /** 剂量单位（字典） */
    private String coefficienUnit;

    /** 采购价（元） */
    @Excel(name = "采购价", readConverterExp = "元=")
    private BigDecimal purchasePrice;

    /** 零售价（元） */
    @Excel(name = "零售价", readConverterExp = "元=")
    private BigDecimal retailPrice;

    /** 允许拆零 */
    private String allowBreakage;

    /** 允许会员折扣 */
    private String allowMemberDiscount;

    /** 药品用法（字典） */
    private String drugUsage;

    /** 单次用量 */
    private String singleDose;

    /** 频度 */
    private String frequency;

    /** 库存下限 */
    private Long inventoryLowerLimit;

    /** 库存上限 */
    private Long inventoryUpperLimit;

    /** 货位号 */
    private String locationCode;

    /** 有效期预警 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date expiryWarning;

    /** 药品说明 */
    private String drugDescription;

    /** 备注 */
    private String remarks;

    /** 逻辑删除(0未删除、1已删除) */
    private String del;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;
// 库存
    private Long drugInventory;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setDrugInformationId(Long drugInformationId) 
    {
        this.drugInformationId = drugInformationId;
    }

    public Long getDrugInformationId() 
    {
        return drugInformationId;
    }

    public void setDrugCode(String drugCode) 
    {
        this.drugCode = drugCode;
    }

    public String getDrugCode() 
    {
        return drugCode;
    }

    public void setDrugBarcode(String drugBarcode) 
    {
        this.drugBarcode = drugBarcode;
    }

    public String getDrugBarcode() 
    {
        return drugBarcode;
    }

    public void setDrugGenericName(String drugGenericName) 
    {
        this.drugGenericName = drugGenericName;
    }

    public String getDrugGenericName() 
    {
        return drugGenericName;
    }

    public void setPinyinCode(String pinyinCode) 
    {
        this.pinyinCode = pinyinCode;
    }

    public String getPinyinCode() 
    {
        return pinyinCode;
    }

    public void setDrugCategory(String drugCategory) 
    {
        this.drugCategory = drugCategory;
    }

    public String getDrugCategory() 
    {
        return drugCategory;
    }

    public void setDrugSpecification(String drugSpecification) 
    {
        this.drugSpecification = drugSpecification;
    }

    public String getDrugSpecification() 
    {
        return drugSpecification;
    }

    public void setDrugForm(String drugForm) 
    {
        this.drugForm = drugForm;
    }

    public String getDrugForm() 
    {
        return drugForm;
    }

    public void setOtcFlag(String otcFlag) 
    {
        this.otcFlag = otcFlag;
    }

    public String getOtcFlag() 
    {
        return otcFlag;
    }

    public void setInvoiceItem(String invoiceItem) 
    {
        this.invoiceItem = invoiceItem;
    }

    public String getInvoiceItem() 
    {
        return invoiceItem;
    }

    public void setApprovalNumber(String approvalNumber) 
    {
        this.approvalNumber = approvalNumber;
    }

    public String getApprovalNumber() 
    {
        return approvalNumber;
    }

    public void setDrugManufacturer(String drugManufacturer) 
    {
        this.drugManufacturer = drugManufacturer;
    }

    public String getDrugManufacturer() 
    {
        return drugManufacturer;
    }

    public void setDrugStatus(String drugStatus) 
    {
        this.drugStatus = drugStatus;
    }

    public String getDrugStatus() 
    {
        return drugStatus;
    }

    public void setPackagingUnit(String packagingUnit) 
    {
        this.packagingUnit = packagingUnit;
    }

    public String getPackagingUnit() 
    {
        return packagingUnit;
    }

    public void setBasicCoefficient(String basicCoefficient) 
    {
        this.basicCoefficient = basicCoefficient;
    }

    public String getBasicCoefficient() 
    {
        return basicCoefficient;
    }

    public void setBasicUnit(String basicUnit) 
    {
        this.basicUnit = basicUnit;
    }

    public String getBasicUnit() 
    {
        return basicUnit;
    }

    public void setDoseCoefficient(String doseCoefficient) 
    {
        this.doseCoefficient = doseCoefficient;
    }

    public String getDoseCoefficient() 
    {
        return doseCoefficient;
    }

    public void setCoefficienUnit(String coefficienUnit) 
    {
        this.coefficienUnit = coefficienUnit;
    }

    public String getCoefficienUnit() 
    {
        return coefficienUnit;
    }

    public void setPurchasePrice(BigDecimal purchasePrice) 
    {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getPurchasePrice() 
    {
        return purchasePrice;
    }

    public void setRetailPrice(BigDecimal retailPrice) 
    {
        this.retailPrice = retailPrice;
    }

    public void setDrugInventory(Long drugInventory){this.drugInventory = drugInventory;}

    public BigDecimal getRetailPrice() 
    {
        return retailPrice;
    }

    public void setAllowBreakage(String allowBreakage) 
    {
        this.allowBreakage = allowBreakage;
    }

    public String getAllowBreakage() 
    {
        return allowBreakage;
    }

    public void setAllowMemberDiscount(String allowMemberDiscount) 
    {
        this.allowMemberDiscount = allowMemberDiscount;
    }

    public String getAllowMemberDiscount() 
    {
        return allowMemberDiscount;
    }

    public void setDrugUsage(String drugUsage) 
    {
        this.drugUsage = drugUsage;
    }

    public String getDrugUsage() 
    {
        return drugUsage;
    }

    public void setSingleDose(String singleDose) 
    {
        this.singleDose = singleDose;
    }

    public String getSingleDose() 
    {
        return singleDose;
    }

    public void setFrequency(String frequency) 
    {
        this.frequency = frequency;
    }

    public String getFrequency() 
    {
        return frequency;
    }

    public void setInventoryLowerLimit(Long inventoryLowerLimit) 
    {
        this.inventoryLowerLimit = inventoryLowerLimit;
    }

    public Long getInventoryLowerLimit() 
    {
        return inventoryLowerLimit;
    }

    public void setInventoryUpperLimit(Long inventoryUpperLimit) 
    {
        this.inventoryUpperLimit = inventoryUpperLimit;
    }

    public Long getInventoryUpperLimit() 
    {
        return inventoryUpperLimit;
    }

    public void setLocationCode(String locationCode) 
    {
        this.locationCode = locationCode;
    }

    public String getLocationCode() 
    {
        return locationCode;
    }

    public void setExpiryWarning(Date expiryWarning)
    {
        this.expiryWarning = expiryWarning;
    }

    public Date getExpiryWarning()
    {
        return expiryWarning;
    }

    public void setDrugDescription(String drugDescription) 
    {
        this.drugDescription = drugDescription;
    }

    public String getDrugDescription() 
    {
        return drugDescription;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    public void setDel(String del) 
    {
        this.del = del;
    }

    public String getDel() 
    {
        return del;
    }

    public void setCreationTime(Date creationTime) 
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime() 
    {
        return creationTime;
    }

    public Long getDrugInventory(){return drugInventory;}

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("drugInformationId", getDrugInformationId())
            .append("drugCode", getDrugCode())
            .append("drugBarcode", getDrugBarcode())
            .append("drugGenericName", getDrugGenericName())
            .append("pinyinCode", getPinyinCode())
            .append("drugCategory", getDrugCategory())
            .append("drugSpecification", getDrugSpecification())
            .append("drugForm", getDrugForm())
            .append("otcFlag", getOtcFlag())
            .append("invoiceItem", getInvoiceItem())
            .append("approvalNumber", getApprovalNumber())
            .append("drugManufacturer", getDrugManufacturer())
            .append("drugStatus", getDrugStatus())
            .append("packagingUnit", getPackagingUnit())
            .append("basicCoefficient", getBasicCoefficient())
            .append("basicUnit", getBasicUnit())
            .append("doseCoefficient", getDoseCoefficient())
            .append("coefficienUnit", getCoefficienUnit())
            .append("purchasePrice", getPurchasePrice())
            .append("retailPrice", getRetailPrice())
            .append("allowBreakage", getAllowBreakage())
            .append("allowMemberDiscount", getAllowMemberDiscount())
            .append("drugUsage", getDrugUsage())
            .append("singleDose", getSingleDose())
            .append("frequency", getFrequency())
            .append("inventoryLowerLimit", getInventoryLowerLimit())
            .append("inventoryUpperLimit", getInventoryUpperLimit())
            .append("locationCode", getLocationCode())
            .append("expiryWarning", getExpiryWarning())
            .append("drugDescription", getDrugDescription())
            .append("remarks", getRemarks())
            .append("del", getDel())
            .append("creationTime", getCreationTime())
                .append("drugInventory", getDrugInventory())
            .toString();
    }
}
